package com.huitone.gddw.dao.business;

import java.util.List;
import java.util.Map;

import com.huitone.gddw.dao.entity.SendSm;
import com.huitone.gddw.model.support.QueryPage;
import com.huitone.gddw.service.dto.SvrNodeDefDTO;
import com.huitone.gddw.service.dto.business.SendSmCountDTO;
import com.huitone.gddw.service.dto.business.SendSmDTO;

public interface ISendSmDao {

    /**
     * 页面列表查询(所有数据)
     * @param map
     * @return List<SendSmDTO> 
     */
    List<SendSmDTO> selectRoot(Map<String,Object> map);
    List<SendSmDTO> selectRootByKeyword(Map<String,Object> map);
    
    
    /**
     * 查询总记录数(所有数据)
     * @param map
     * @return
     */
    int countRoot(Map<String,Object> map);
    int countRootByKeyword(Map<String,Object> map);
    /**
     * 页面列表查询(本单位数据)
     * @param map
     * @return List<SendSmDTO> 
     */
    List<SendSmDTO> selectUnit(Map<String,Object> map);
    List<SendSmDTO> selectUnitByKeyword(Map<String,Object> map);
    /**
     * 查询总记录数(本单位数据)
     * @param map
     * @return
     */
    int countUnit(Map<String,Object> map);
    int countUnitByKeyword(Map<String,Object> map);
    /**
     * 根据查询参数，返回记录(本单位数据)
     * @param map
     * @return List<SendSmDTO>
     */
    List<SendSmDTO> getRecordUnit(Map<String,Object> map);
    /**
     * 根据查询参数，返回记录(所有数据)
     * @param map
     * @return List<SendSmDTO>
     */
    List<SendSmDTO> getRecordRoot(Map<String,Object> map);
    /**
     * 根据主键查询记录
     * @param recId
     * @return
     */
    SendSmDTO selectByPrimaryKey(String recId);
    /**
     * 根据序列号查询唯一记录
     * @param smSeq
     * @return
     */
    SendSm getBySmSeq(String smSeq);
    
    
    /**
     * 根据日期类型查询top和count
     * @param smSeq
     * @return
     */
	List<String> getTopByTime(Map<String, Object> params);
	List<String> getFlowTopByTime(Map<String, Object> params);
	List<String> getTopMMAndDDByTime (Map<String, Object> params);
	
	List<SendSmCountDTO> getCountByMM(Map<String, Object> params);
    
	List<SendSmCountDTO> getCountByDD(Map<String, Object> params);
	
	List<SendSmCountDTO> getCountByHH(Map<String, Object> params);
	
	List<SendSmCountDTO> getCountByMI(Map<String, Object> params);
	
	List<SendSmCountDTO> countPageMM(Map<String, Object> params);
	List<SendSmCountDTO> countPageDD(Map<String, Object> params);
	List<SendSmCountDTO> countPageHH(Map<String, Object> params);
	List<SendSmCountDTO> countPageMI(Map<String, Object> params);
    
 
	

}